/*
* Copyright 2016 Yonyou Auto Information Technology（Shanghai） Co., Ltd. All Rights Reserved.
*
* This software is published under the terms of the YONYOU Software
* License version 1.0, a copy of which has been included with this
* distribution in the LICENSE.txt file.
*
* @Project Name : marketing-service-newcar-showroom
*
* @File name : ShowroomDao.java
*
* @Author : LiuJun
*
* @Date : 2016年10月31日
*
----------------------------------------------------------------------------------
*     Date       Who       Version     Comments
* 1. 2016年10月31日    LiuJun    1.0
*
*
*
*
----------------------------------------------------------------------------------
*/
	
package com.yonyou.gmmc.dealerApp.api.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.marketing.common.dto.customerInfo.PackageColorDto;
import org.marketing.common.dto.showroom.BrandExhibitionDto;
import org.marketing.common.dto.showroom.ModelExhibitionDto;
import org.marketing.common.dto.showroom.PackageExhibitionDto;
import org.marketing.common.dto.showroom.PackageSimpleDto;
import org.marketing.common.dto.showroom.SeriesExhibitionDto;

import com.yonyou.gmmc.common.annotation.OracleDb;

/**
*
* @author LiuJun
* 展厅DAO
* @date 2016年10月31日
*/
@OracleDb
public interface ShowroomDao {

    /**
    *
    * @author LiuJun
    * 获取品牌车系展示数据
    * @date 2016年11月1日
    * @param brandCode
    * @return
    */
    public List<BrandExhibitionDto> queryBrandExhibitionData(@Param("brandCode") String brandCode);

    /**
    *
    * @author LiuJun
    * 获取车型配置展示数据
    * @date 2016年11月2日
    * @param seriesCode
    * @return
    */
    public List<ModelExhibitionDto> queryModelExhibitionData(@Param("seriesCode") String seriesCode,@Param("dealerCode") String dealerCode);

    /**
    *
    * @author LiuJun
    * 根据车系code查询车系相关信息
    * @date 2016年11月2日
    * @param seriesCode
    * @return
    */
    public List<SeriesExhibitionDto> querySeriesInfoBySeriesCode(@Param("seriesCode") String seriesCode);

    /**
    *
    * @author LiuJun
    * 根据配置code-查询配置的详细信息
    * @date 2016年11月2日
    * @param packageCode
    * @return
    */
    public List<PackageExhibitionDto> queryPackageExhibitionData(@Param("packageCode") String packageCode,@Param("dealerCode") String dealerCode);

    /**
    *
    * @author LiuJun
    * 获取车型配置展示数据-根据排量分组
    * @date 2017年1月3日
    * @param seriesCode
    * @param dealerCode
    * @return
    */
    public List<ModelExhibitionDto> queryModelExhibitionDataGroupByDisplacement(@Param("seriesCode") String seriesCode, @Param("dealerCode") String dealerCode);
    
    /**
    *
    * @author LiuJun
    * 获取车型配置展示数据-根据变速箱类型
    * @date 2017年1月3日
    * @param seriesCode
    * @param dealerCode
    * @return
    */
    public List<ModelExhibitionDto> queryModelExhibitionDataGroupByGearboxType(@Param("seriesCode") String seriesCode, @Param("dealerCode") String dealerCode);

    /**
    *
    * @author LiuJun
    * 根据车系code查询所有车型以及车型的配置-根据排量和变速箱类型
    * @date 2017年1月3日
    * @param seriesCode
    * @param dealerCode
    * @param gearboxType
    * @param displacement
    * @return
    */
    public List<PackageSimpleDto> queryPackageDataByDisplacementAndGearboxType(@Param("seriesCode") String seriesCode,
                                                                                               @Param("dealerCode") String dealerCode,
                                                                                               @Param("gearboxType") String gearboxType,
                                                                                               @Param("displacement") String displacement);

    /**
    *
    * @author LiuJun
    * 查询配置颜色
    * @date 2017年1月10日
    * @param packageCode
    * @return
    */
    public List<PackageColorDto> queryPackageColors(@Param("packageCode") String packageCode);
    
    
    

}
